相信寫過 javaScript ES6 的大家一定使用過,high order function
,
譬如 map, reduce,接下來就來講解 high order function
是什麼。
const a = (callback) => {
callback();
}
a(()=>{console.log('calback function')}); // calback function;
const a = ()=>{
return function(x){
console.log('x',x);
}
}
const xFunc = a();
xFunc(5);// x,5
High order function 的好處就是類似前天提到的 pure function 把他封裝在某在 function 裡。
去執行他特定功能,外層也不用知道裡面怎麼做。如果你有個 function 是進來的數值統一加 2 ,
然後再帶一個數值去乘以他,那就可以這樣寫。
const caculate = (x) =>{
return (y)=>x*y;
}
const x = caculate(5);
const xy = x(4); // 20;
或是寫成這樣 const sum = caculate(5)(4);
這樣是不是每一個 function 就可以專注他的參數,並把參數帶給下一個 function 去做事。